The present invention relates generally to the collection and display the collected performance data in a computing environment, and more particularly to the collection, storage, and efficient presentation of computer system performance data when collection of the data has been paused and resumed.
Traditional performance data (performance parameter) collection and display provides for the acquisition, storage, and graphical display of the collected performance data. Performance data may include, for example, computer system or device resource utilization as a function of time, such as for example the number of read operations or write operations, the number of cache read hits as a function of time, the volume of TCP/IP traffic on an Internet connection, page faulting in a computing unit or memory unit, as well as other computer system, device, and network parameters as are known in the art. The performance data is useful for monitoring, tuning, and optimizing the computer system, devices, and network, as well as for debugging a system (particularly a distributed network system) to identify bottlenecks in the system.
In one particular embodiment, the performance data or performance parameters may advantageously include but need not be limited to: input/output read operations per second (IOR/sec), input/output write operations per second (IOW/sec), input/output read kilobytes transferred per second (IORKB/sec), input/output write kilobytes transferred per second (IOWKB/sec), percent read cache hit per second (%CHR/sec), percent write cache hit per second (%CHW/sec). Other performance parameters of data may be collected, processed, and reported in analogous manner.
While collecting and displaying performance data is certainly useful for monitoring the computing environment, there is little benefit in continuing to collect such data when no monitoring or analysis of that data is taking place. Continuing to collect data that will not be monitored or analyzed wastes storage space, consumes processor (CPU) resources unnecessarily, and where the performance data is displayed as a function of time, occupies display screen area for performance data that is of no interest.
Traditionally, when a computer user, operator, or system administrator chose not to monitor one or more data items indicative of system performance, there were typically three options: (i) permit the collection and display applications to continue but ignore the data that is collected and displayed; (ii) close the collection and/or display application when not required, and restart the application when required; (iii) permit the collection and display application to continue executing but pause or otherwise suspend data collection and display, then resume collection and display within the executing application program.
Under the first option, the operator merely ignores the collected and displayed data. This potential solution is an alternative to a pause. The operator leaves the monitoring application executing, which uses up valuable storage space in the monitoring equipment and results in connections being open but not being used, thereby using up bandwidth and the unproductive use of system resources. This option also wastes storage space, processor resources, and display area and perhaps even more detrimentally forces the operator to view data that is of no interest. In a graphical display application of the type that permits scrolling of the data, the operator is forced to scroll though the undesired data to compare desired performance parameters that were collected before and after the undesired collection.
Under the second option, the collection and display application(s) are stopped and started. This may typically require that the operator close the data collection application, which generally means logging off all connections to the devices from which data is being collected. The operator then restarts the monitoring operation at the end of the pause period. Delays due to restarting resulting from the need to log into remote machines and so forth, result in lost time and are inefficient and cumbersome. It also typically means that each time the data collection application is stopped, a new file is created, and data continuity is disrupted. In order for later analysis to be performed, several files need be examined, and maintenance of cumulative statistics becomes cumbersome. It also means that connections must b reestablished each time data collection is to be resumed.
Under the third option, data collection pauses and a pause record is relayed to recipients. This approach pauses data collection, thereby saving storage space as well as processing resources. However, this approach allows connections to remain open and operating and the support processes continue executing with minimum overhead. Once data collection pauses, no data is relayed to the recipients until data collection resumes.
Even when the data collection application remains running but with actual data collection suspended or paused, there remain questions as to how to display the performance data graph during the pause duration, and how to distinguish from a failure to collect performance data as a result of the system, such as a network server, being so busy with higher priority tasks that it could not collect the performance data for some duration of time. In the later circumstance, the server effectively pauses data collection. In a multi-client and server environment where one client starts a pause, other clients should be able to distinguish the pause from a zero data situation. Data collection may be paused at the request of any one of the clients or when the server is too busy to provide data. When the server pauses data collection, it relays a pause record to each recipient and no further data will be sent until data collection is resumed.
One potential solution is to consider the data as zero while displaying performance data as a plot versus time. Unfortunately, this approach cannot distinguish between zero data and the pause duration and it undesirably uses display screen area even though there is no useful data during the pause.
Therefore there remains a need for system, apparatus, method, and computer program and computer program product that distinguishes a pause or delay in the display of performance data from no or zero data and yet preserves display screen space.
In one aspect the invention provides a method of pausing and resuming data collection data collection and optionally displaying the paused and resumed data collection conditions where the method includes the steps of collecting at least one data item for a first computer process by a second computer process in response to a request from the first computer process to collect the data item; during collection of the data item, communicating a pause data command from the first computer process to the second computer process; pausing collection of the data item by the second computer process in response to the pause data command; storing a time reference at which the data collection was paused; communicating a pause data record to the first computer process as an indication that data collection has been paused; and displaying, by the first computer process, a pause indication on a display device.
The method may further optionally include communicating a resume data command from the first computer process to the second computer process, the second computer process resuming collecting data in response to receipt of the resume data command; resuming collection of said at least one data item by the second computer process; storing a time reference at which the collection of the data item was resumed; and optionally displaying, by the first computer process, an indication of the resume time, on the display device.
Advantageously, the pause indication consumes a minimum space (or no space) on the display device which amount of space is independent of the duration of the pause. In one embodiment, the graphical display element is a thickened portion of the line graph at the time where the data collection was paused. Displays other than line graphs may alternatively be used.
System, apparatus, computer program, and computer program product implementing the inventive method are also provided by the invention.